package cn.ytr.crm.service;

import cn.ytr.crm.domain.Employee;
import cn.ytr.crm.query.PageResult;
import cn.ytr.crm.query.QueryObject;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpSession;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

public interface IEmployeeService {
	void saveOrUpate(Employee employee, Long[] roleIds);
	void delete(Long id);
	Employee get(Long id);
	List<Employee> listAll();
	
	//高级查询
	PageResult query(QueryObject qo); 

	//登录：通过名称和密码匹配
	void login(String name, String password, HttpSession session);

	//通过名字和密码获取员工信息
	Employee checkByNameAndPassword(String name, String password);

	//修改个人密码
    void editPassword(Long id, String newPassword);

    //检测员工用户名是否可用，不重复就返回 true
    boolean checkName(String name);

	/**
	 * 刷新员工登录
	 */
    void refreshLogin(Long id);

    /**
     * 处理 批量删除员工
     */
    void batchDelete(Long[] ids);

    /**
     * 处理 升级员工为超级管理员
     */
    void upAdmin(Employee employee);

	/**
	 * 处理 导出员工 excel 表
	 */
    Workbook exportXls() throws FileNotFoundException, Exception;

    /**
     * 处理 导入员工 excel 表
     */
    void importXls(MultipartFile file) throws IOException;

	/**
	 * 通过角色编号查询员工
	 */
	List<Employee> selectByRoleSn(String... snArr);
}
